home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text;
-
- import java.util.Enumeration;
- import java.util.Stack;
-
- public class ElementIterator implements Cloneable {
- private Element root;
- private Stack elementStack = null;
-
- public ElementIterator(Document var1) {
- this.root = var1.getDefaultRootElement();
- }
-
- public ElementIterator(Element var1) {
- this.root = var1;
- }
-
- public synchronized Object clone() {
- try {
- ElementIterator var1 = new ElementIterator(this.root);
- var1.elementStack = new Stack();
-
- for(int var2 = 0; var2 < this.elementStack.size(); ++var2) {
- StackItem var3 = (StackItem)this.elementStack.elementAt(var2);
- StackItem var4 = (StackItem)var3.clone();
- var1.elementStack.push(var4);
- }
-
- return var1;
- } catch (CloneNotSupportedException var5) {
- throw new InternalError();
- }
- }
-
- public Element current() {
- if (this.elementStack == null) {
- return this.first();
- } else if (!this.elementStack.empty()) {
- StackItem var1 = (StackItem)this.elementStack.peek();
- Element var2 = javax.swing.text.ElementIterator.StackItem.access$0(var1);
- int var3 = javax.swing.text.ElementIterator.StackItem.access$1(var1);
- return var3 == -1 ? var2 : var2.getElement(var3);
- } else {
- return null;
- }
- }
-
- public int depth() {
- return this.elementStack.size();
- }
-
- private void dumpTree() {
- Element var1;
- while((var1 = this.next()) != null) {
- System.out.println("elem: " + var1.getName());
- AttributeSet var2 = var1.getAttributes();
- String var3 = "";
- Enumeration var4 = var2.getAttributeNames();
-
- while(var4.hasMoreElements()) {
- Object var5 = var4.nextElement();
- Object var6 = var2.getAttribute(var5);
- if (var6 instanceof AttributeSet) {
- var3 = var3 + var5 + "=**AttributeSet** ";
- } else {
- var3 = var3 + var5 + "=" + var6 + " ";
- }
- }
-
- System.out.println("attributes: " + var3);
- }
-
- }
-
- public Element first() {
- if (this.root == null) {
- return null;
- } else {
- this.elementStack = new Stack();
- if (this.root.getElementCount() != 0) {
- this.elementStack.push(new StackItem(this, (1)null, this.root));
- }
-
- return this.root;
- }
- }
-
- public Element next() {
- if (this.elementStack == null) {
- return this.first();
- } else if (this.elementStack.isEmpty()) {
- return null;
- } else {
- StackItem var1 = (StackItem)this.elementStack.peek();
- Element var2 = javax.swing.text.ElementIterator.StackItem.access$0(var1);
- int var3 = javax.swing.text.ElementIterator.StackItem.access$1(var1);
- if (var3 + 1 < var2.getElementCount()) {
- Element var5 = var2.getElement(var3 + 1);
- if (var5.isLeaf()) {
- javax.swing.text.ElementIterator.StackItem.access$2(var1);
- } else {
- this.elementStack.push(new StackItem(this, (1)null, var5));
- }
-
- return var5;
- } else {
- this.elementStack.pop();
- if (!this.elementStack.isEmpty()) {
- StackItem var4 = (StackItem)this.elementStack.peek();
- javax.swing.text.ElementIterator.StackItem.access$2(var4);
- return this.next();
- } else {
- return null;
- }
- }
- }
- }
-
- public Element previous() {
- if (this.elementStack == null | this.elementStack.size() == 1) {
- return null;
- } else {
- StackItem var1 = (StackItem)this.elementStack.peek();
- Element var2 = javax.swing.text.ElementIterator.StackItem.access$0(var1);
- int var3 = javax.swing.text.ElementIterator.StackItem.access$1(var1);
- if (var3 > 0) {
- --var3;
- return var2.getElement(var3);
- } else if (var3 == 0) {
- return var2;
- } else if (var3 == -1) {
- Object var4 = this.elementStack.pop();
- var1 = (StackItem)this.elementStack.peek();
- this.elementStack.push(var4);
- var2 = javax.swing.text.ElementIterator.StackItem.access$0(var1);
- var3 = javax.swing.text.ElementIterator.StackItem.access$1(var1);
- return var3 == -1 ? var2 : var2.getElement(var3);
- } else {
- return null;
- }
- }
- }
- }
-